#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <string.h>
//int main()
//{
//	int a = 10;
//	int b = 20;
//	printf("a=%d b=%d\n", a, b);
//	a = a ^ b;
//	b = a ^ b;
//	a = a ^ b;
//	printf("a=%d b=%d\n", a, b);
//	return 0;
//}

//int main()
//{
//	int n;
//	int ret=0;
//	scanf("%d", &n);
//	while (n != 0)
//	{
//		if ((n & 1) != 0)
//			ret++;
//		n=n >> 1;
//	}
//	printf("%d", ret);
//	return 0;
//}

//void PrintBit(int n)
//{
//	int i;
//	for (i = 31; i >= 1; i -= 2)
//	{
//		printf("%d", (n >> i) & 1);
//	}
//	printf("\n");
//	for (i = 30; i >= 1; i -= 2)
//	{
//		printf("%d", (n >> i) & 1);
//	}
//	printf("\n");
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	PrintBit(&n);
//	return 0;
//}

//int Count(int c)
//{
//	int i = 0;
//	int count = 0;
//
//	for (i = 0; i < 32; i++)
//	{
//		if (c & 1 == 1)
//		{
//			count++;
//		}
//		c = c >> 1;
//	}
//	return count;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//
//	int c = a ^ b;
//
//	int ret = Count(c);
//
//	printf("%d", ret);
//	return 0;
//}


//void reserve1(char* left, char* right)
//{
//    char ret;
//    while (left < right)
//    {
//        ret = *left;
//        *left = *right;
//        *right = ret;
//        left++;
//        right--;
//    }
//
//}
//
//void reserve(char* ch, int len)
//{
//    reserve1(ch, ch + len - 1);
//    while (*ch)
//    {
//        char* first = ch;
//        while (*ch && (*ch != ' '))
//        {
//            ch++;
//        }
//        reserve1(first, ch - 1);
//        if (*first == ' ')
//            ch++;
//
//    }
//}
//
//int main() {
//    char ch[100];
//    gets(ch);
//    int len = strlen(ch);
//    reserve(ch, len);
//    printf("%s\n", ch);
//    return 0;
//}


int main() {
    int a, b;
    int i = 1;
    scanf("%d %d", &a, &b);
    while (1)
    {
        if (a * i % b == 0)
            break;
        i++;
    }
    printf("%d\n", a * i);
    return 0;
}

